package com.bigzero.workflow.modules.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bigzero.workflow.modules.system.entity.MenuEntity;
import com.bigzero.workflow.modules.system.entity.RoleEntity;
import com.bigzero.workflow.modules.system.entity.UserRoleEntity;
import com.bigzero.workflow.modules.system.vo.MenuVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;

/**
 * 用户角色关联dao
 * @Author: fanxinxiong
 * @Date: 2025-02-11 14:48:00
 */
@Mapper
public interface UserRoleDao extends BaseMapper<UserRoleEntity>{

    List<String> getUserFuncPermission(String userCode);

    /**
     * 根据map参数查询权限标识集合
     * @param map map参数
     * @return List<String>
     */
    List<String> selectPermsListByMap(HashMap<String, Object> map);

    /**
     * 根据map参数查询菜单集合
     * @param map map参数
     * @return List<MenuVo>
     */
    List<MenuVo> selectMenuVoListMap(HashMap<String, Object> map);

    /**
     * 根据map参数查询角色实体集合
     * @param map map参数
     * @return List<RoleEntity>
     */
    List<RoleEntity> selectRoleEntityListByMap(HashMap<String, Object> map);

    /**
     * 根据map参数查询菜单实体集合
     * @param map map参数
     * @return List<MenuEntity>
     */
    List<MenuEntity> selectMenuEntityListByMap(HashMap<String, Object> map);

    /**
     * 根据用户id查询角色id集合
     * @param userId 用户id
     * @return List<String>
     */
    List<String> selectRoleIdListByUserId(String userId);

    /**
     * 根据用户id查找角色名称
     * @param userId 用户id
     * @return String
     */
    String selectRoleNameByUserId(String userId);
}
